Sponsor
If you or your company find Divan valuable, consider sponsoring on GitHub or donating via PayPal. Sponsorships help me progress on what's possible with benchmarking in Rust.
Guide
A guide is being worked on. In the meantime, see:
Getting Started
-
Add the following to your project's
Cargo.toml
:[] = "0.1.14" [[]] = "example" = false
-
Create a benchmarks file at
benches/example.rs
[^1] with your benchmarking code:// Register a `fibonacci` function and benchmark it over multiple cases.
-
Run your benchmarks with
cargo bench
:example fastest │ slowest │ median │ mean │ samples │ iters ╰─ fibonacci │ │ │ │ │ ├─ 1 0.626 ns │ 1.735 ns │ 0.657 ns │ 0.672 ns │ 100 │ 819200 ├─ 2 2.767 ns │ 3.154 ns │ 2.788 ns │ 2.851 ns │ 100 │ 204800 ├─ 4 6.816 ns │ 7.671 ns │ 7.061 ns │ 7.167 ns │ 100 │ 102400 ├─ 8 57.31 ns │ 62.51 ns │ 57.96 ns │ 58.55 ns │ 100 │ 12800 ├─ 16 2.874 µs │ 3.812 µs │ 2.916 µs │ 3.006 µs │ 100 │ 200 ╰─ 32 6.267 ms │ 6.954 ms │ 6.283 ms │ 6.344 ms │ 100 │ 100
See #[divan::bench]
for info on benchmark function registration.
Examples
Practical example benchmarks can be found in the examples/benches
directory. These can be benchmarked locally by running:
More thorough usage examples can be found in the #[divan::bench]
documentation.
License
Like the Rust project, this library may be used under either the MIT License or Apache License (Version 2.0).
[^1]: Within your crate directory, i.e. $CARGO_MANIFEST_DIR